package Mapa;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

import Objetos.Objeto;

public class CreatorByFile {
	//protected Nivel level;
	protected Mapeo_Objetos mapeo;
	protected Matriz matriz;
	
	/**Contructor. */
	public CreatorByFile( BufferedReader f ){
		matriz = new Matriz();
		mapeo = new Mapeo_Objetos();
		parseFile(f);
	}
	
	/**Devuelve la matriz de objetos. */
	public Matriz getMatriz(){
		return matriz;
	}
	
	/**Inicializa la matriz desde un archivo. */
	protected void parseFile(BufferedReader in) {
		int line = 0;
		try {
		    //BufferedReader in = new BufferedReader(new FileReader(f));
		    String str;
		    while ((str = in.readLine()) != null) {
		        this.parseLine(line, str); 
		        line++;
		    }
		    in.close();
		} catch (IOException e) {}
	}
	
	/**Metodo auxiliar para inicializar la matriz. */
	protected void parseLine(int line, String str )	{
		for( int i = 0; i < str.length(); i++ )	{
			Character c = new Character(str.charAt(i));
			Objeto e = mapeo.get(c);
			if(e != null){
				Objeto x = (Objeto) e.clonar(); 
				matriz.setObjeto(i, line, x);
			}
		}
	}
	

}
